home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / rjs.lha / RJS / String / src / replace.C < prev    next >
C/C++ Source or Header  |  1991-06-14  |  1KB  |  46 lines

  1. #include "String.h"
  2.  
  3. #define DECLARE_REPLACE(arg1,arg2)                \
  4.                                 \
  5.     RJS_String &RJS_String::replace(arg1 s1,arg2 s2)        \
  6.     {                             \
  7.         at(s1)=s2;                     \
  8.         return *this;                    \
  9.     }
  10.  
  11. #define DECLARE_REPLACE2(arg1)                    \
  12.                                 \
  13.     RJS_String &RJS_String::replace(const RJS_StringSearch &ss,        \
  14.                 arg1 s1,RJS_String &matched)    \
  15.     {                             \
  16.     int ss_len;                         \
  17.     int pos=ss.search(*this,ss_len);             \
  18.       if (pos!=-1) {                     \
  19.         matched=substr(pos,ss_len);            \
  20.         substr(pos,ss_len)=s1;                \
  21.       }                            \
  22.       return *this;                     \
  23.     }
  24.  
  25. DECLARE_REPLACE(char,char)
  26. DECLARE_REPLACE(char,const char *)
  27. DECLARE_REPLACE(char,const RJS_String &)
  28.  
  29. DECLARE_REPLACE(const char *,char)
  30. DECLARE_REPLACE(const char *,const char *)
  31. DECLARE_REPLACE(const char *,const RJS_String &)
  32.  
  33. DECLARE_REPLACE(const RJS_String &,char)
  34. DECLARE_REPLACE(const RJS_String &,const char *)
  35. DECLARE_REPLACE(const RJS_String &,const RJS_String &)
  36.  
  37. DECLARE_REPLACE(const RJS_StringSearch &,char)
  38. DECLARE_REPLACE(const RJS_StringSearch &,const char *)
  39. DECLARE_REPLACE(const RJS_StringSearch &,const RJS_String &)
  40.  
  41. DECLARE_REPLACE2(char)
  42. DECLARE_REPLACE2(const char *)
  43. DECLARE_REPLACE2(const RJS_String &)
  44.  
  45.  
  46.